package com.ssy.lingxi.dataauth.annotation.member;

import com.ssy.lingxi.dataauth.model.constant.DataAuthType;

import java.lang.annotation.*;

/**
 * 上级会员数据权限： 在Controller、或ServiceImpl类的方法上增加此注解
 * @author whm
 * @version 2.0.0
 * @date 2022-03-29
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface MemberAuth {
    /**
     * 要拦截的表名
     * @return 数据库表名
     */
    String tableName() default "ms_mc_member_relation";

    /**
     * 数据库表中会员Id的字段名称
     * @return 会员id字段名
     */
    String memberIdColumnName() default "member_id";

    /**
     * 数据库表中会员角色Id的字段名称
     * @return 会员角色id字段名
     */
    String roleIdColumnName() default "role_id";

    /**
     * 数据库表中用户Id的字段名称
     * @return 用户Id字段名
     */
    String userIdColumnName() default "user_id";

    /**
     * 权限拦截类型，定义在 DataAuthType 中
     * @return 权限拦截类型
     */
    DataAuthType type() default DataAuthType.USER;
}
